#include "HMISuperviseur.h"

HMISuperviseur::HMISuperviseur()
	:QObject()
{
	KeyStatus = false;
	ChckUSB_timer = new QTimer(this);
    connect(ChckUSB_timer, SIGNAL(timeout()), this, SLOT(Check_MediaStorage()));
	qDebug() << "Info :" << "Demarage du superviseur d'Interface Homme Machine : OK";
	MediaPath = "";
}

HMISuperviseur::~HMISuperviseur()
{
	qDebug() << "Info :" << "Arret du superviseur d'Interface Homme Machine : OK";
}

void HMISuperviseur::SetStartStatus()
{
	emit setWidget_StartVisible(true);
	emit setWidget_SettingVisible(false);
	emit setWidget_RecordVisible(false);
	emit setEnable_UsbWork(KeyStatus);
	ChckUSB_timer->start(1000);
}
void HMISuperviseur::SetSettingStatus()
{
	emit setWidget_StartVisible(false);
	emit setWidget_SettingVisible(true);
	emit setWidget_RecordVisible(false);
}
void HMISuperviseur::SetRecordStatus()
{
	emit setWidget_StartVisible(false);
	emit setWidget_SettingVisible(false);
	emit setWidget_RecordVisible(true);
	emit setTextLbl_EnregistrementEnCours(trUtf8("Enregistrement en cours..."));
	emit setEnableBtn_finenregistrement(true);
}
void HMISuperviseur::Check_MediaStorage()
{
	bool OneItemFounded(false);
	QString DirToTest;
	QString TmpMediaPath = "";
	QDir media("/media/");
	QFileInfoList medias_folders;
	medias_folders = media.entryInfoList(QDir::Dirs);
	for(int i=0; i<medias_folders.size(); i++)
	{
		DirToTest = medias_folders[i].fileName();
		if(!DirToTest.contains("."))
		{
			if(!DirToTest.contains("cdrom"))
			{
				OneItemFounded = true;
				if(TmpMediaPath == "")
				{TmpMediaPath = DirToTest;}
			}
		}
	}
	if(OneItemFounded == true)
	{
		SetUSBStatus(true);
		MediaPath = TmpMediaPath;
	}
	else
	{
		SetUSBStatus(false);
		MediaPath = "";
	}
}
QString HMISuperviseur::GetMediaPath()
{
	return MediaPath;
}
void HMISuperviseur::SetUSBStatus(bool newStatus)
{
	if(newStatus == KeyStatus)
	{return;}
	if(newStatus == true)
	{
		qDebug() << "Info :" << "Clef USB branchee";
		emit setEnable_UsbWork(true);
	}
	else
	{
		qDebug() << "Info :" << "Clef USB debranchee";
		emit setEnable_UsbWork(false);
	}
	KeyStatus = newStatus;
}
void HMISuperviseur::EndRecordStartEncode()
{
	emit setTextLbl_EnregistrementEnCours(trUtf8("Encodage en cours et copie... Veuillez patienter..."));
	emit setEnableBtn_finenregistrement(false);
}
void HMISuperviseur::EndEncode()
{

}
